DAX (Data Analysis Expressions) একটি শক্তিশালী এক্সপ্রেশন ভাষা যা Power BI, PowerPivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয়। DAX-এ CALCULATE ফাংশনটি অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি filter context তৈরি করে এবং কোনো নির্দিষ্ট কন্ডিশনের ভিত্তিতে ক্যালকুলেশন পরিবর্তন করতে ব্যবহৃত হয়। CALCULATE ফাংশনটি মূলত condition-based calculations বা filter-based calculations করার জন্য ব্যবহৃত হয়, যা বিশ্লেষণ এবং রিপোর্টে পরিবর্তনশীলতা নিয়ে আসে।
এই প্রবন্ধে আমরা CALCULATE ফাংশনের মাধ্যমে Filter যোগ করার পদ্ধতি এবং এর ব্যবহার নিয়ে আলোচনা করব।
CALCULATE ফাংশন
CALCULATE ফাংশনটি DAX-এর একটি অত্যন্ত শক্তিশালী ফাংশন, যা একটি কাস্টম ক্যালকুলেশন তৈরি করতে ব্যবহার করা হয়। এটি কোনো নির্দিষ্ট filter context-এ ক্যালকুলেশন করতে পারে।
Syntax:
CALCULATE(<expression>, <filter1>, <filter2>, ...)
- : এটি সেই ক্যালকুলেশন যা আপনি করতে চান, যেমন SUM, AVERAGE, COUNT, ইত্যাদি।
- , , ...: এখানে এক বা একাধিক ফিল্টার যোগ করা হয়, যা ক্যালকুলেশনটি নির্দিষ্ট কন্ডিশনের ভিত্তিতে পরিবর্তন করবে।
ব্যবহার:
CALCULATE ফাংশনটি মূলত ফিল্টার শর্তে aggregation বা কাস্টম ক্যালকুলেশন করতে ব্যবহৃত হয়। এই ফাংশনটি ফিল্টার কন্ডিশন অনুযায়ী ডেটার সিলেকশন পরিবর্তন করতে পারে এবং সংশ্লিষ্ট ফলাফল রিটার্ন করে।
CALCULATE ফাংশনের মাধ্যমে Filter যোগ করা
CALCULATE ফাংশন ব্যবহার করে আপনি ডেটার উপর filtering প্রয়োগ করতে পারেন। এটি filter context পরিবর্তন করে ক্যালকুলেশনটি প্রভাবিত করে।
১. Filter Based on a Condition
ধরা যাক, আপনি Sales টেবিলের Amount এর যোগফল চান, কিন্তু আপনি শুধুমাত্র East অঞ্চলের বিক্রয় ক্যালকুলেট করতে চান। তখন আপনি CALCULATE ফাংশন ব্যবহার করবেন এইভাবে:
Total Sales East = CALCULATE(SUM(Sales[Amount]), Sales[Region] = "East")
এই ফর্মুলাটি Sales টেবিলের Amount কলামের যোগফল গণনা করবে, তবে শুধুমাত্র Sales[Region] কলামে "East" মান থাকলে।
২. Multiple Filters
আপনি একাধিক filter যোগ করতে পারেন, এবং তখন ক্যালকুলেশন শুধুমাত্র উল্লিখিত শর্তগুলির উপর ভিত্তি করে হবে।
যেমন, আপনি যদি East অঞ্চলের sales এর যোগফল চান, যেখানে Sales[Amount] 1000 এর বেশি, তাহলে এটি করা হবে:
Total Sales East > 1000 = CALCULATE(SUM(Sales[Amount]), Sales[Region] = "East", Sales[Amount] > 1000)
এই ফর্মুলাটি Sales টেবিলের Amount এর যোগফল গণনা করবে, যেখানে Region "East" এবং Amount 1000 এর বেশি।
৩. Filter with Date
ধরা যাক, আপনি Sales টেবিলের Amount এর যোগফল চান, তবে শুধুমাত্র 2023 সালের January মাসের বিক্রয় দেখতে চান। আপনি CALCULATE ফাংশনে DATE ফিল্টার যোগ করতে পারেন:
Total Sales Jan 2023 = CALCULATE(SUM(Sales[Amount]), YEAR(Sales[Date]) = 2023, MONTH(Sales[Date]) = 1)
এই ফর্মুলাটি Sales টেবিলের Amount কলামের যোগফল কেবলমাত্র 2023 সালের January মাসের ডেটা নিয়ে গণনা করবে।
৪. Using Logical Conditions in Filters
ফিল্টারের মধ্যে logical expressions যেমন AND, OR, বা NOT ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনি যদি চান যে Amount 1000 এর বেশি এবং Region "East" না হলে Total Sales গণনা হোক:
Total Sales Excluding East = CALCULATE(SUM(Sales[Amount]), Sales[Amount] > 1000, Sales[Region] <> "East")
এই ফর্মুলাটি Sales টেবিলের Amount এর যোগফল গণনা করবে, তবে যেখানে Amount 1000 এর বেশি এবং Region "East" নয়।
CALCULATE ফাংশনের সঙ্গে Advanced Filtering
১. Using ALL Function to Remove Filters
ALL ফাংশনটি ব্যবহৃত হয় ফিল্টার মুছে ফেলতে, যা এক্সপ্রেশন বা ক্যালকুলেশনের জন্য সমস্ত ফিল্টার অপসারণ করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, আপনি যদি সমস্ত Sales[Region] এর উপর ভিত্তি করে একটি ক্যালকুলেশন করতে চান, তবে:
Total Sales All Regions = CALCULATE(SUM(Sales[Amount]), ALL(Sales[Region]))
এটি Sales টেবিলের Amount এর যোগফল গণনা করবে, যেখানে Region কলামে কোনো ফিল্টার প্রয়োগ করা হবে না।
২. Using ALLEXCEPT to Retain Some Filters
ALLEXCEPT ফাংশনটি ব্যবহৃত হয় কিছু নির্দিষ্ট কলামের ফিল্টার রাখার জন্য এবং বাকি সব ফিল্টার মুছে ফেলার জন্য। যেমন, আপনি যদি Region ফিল্টার ধরে রেখে অন্য সকল ফিল্টার মুছে ফেলতে চান:
Total Sales by Region = CALCULATE(SUM(Sales[Amount]), ALLEXCEPT(Sales, Sales[Region]))
এটি Sales টেবিলের Amount এর যোগফল গণনা করবে, কিন্তু শুধুমাত্র Region কলামের ফিল্টার রাখবে, এবং বাকি সকল ফিল্টার বাদ দিবে।
সারাংশ
CALCULATE ফাংশন DAX-এর সবচেয়ে শক্তিশালী এবং গুরুত্বপূর্ণ ফাংশনগুলির মধ্যে একটি, যা আপনাকে filter context তৈরি করার জন্য ব্যবহার করতে সহায়ক। এটি আপনাকে ডেটার উপর custom filters প্রয়োগ করার সুযোগ দেয়, যেমন একাধিক শর্তের ভিত্তিতে ক্যালকুলেশন পরিবর্তন করা। CALCULATE ব্যবহার করে আপনি aggregation, conditional calculations, time intelligence, এবং complex filtering করতে পারেন, যা আপনার বিশ্লেষণকে আরও উন্নত এবং কার্যকরী করে তোলে।
Read more